{{identity/entity-nav identityType=identityType model=model}}
{{#if model.meta.total}}
  {{#each model as |item|}}
    {{#linked-block
      "vault.cluster.access.identity.show"
      item.id
      "details"
      class="list-item-row"
      data-test-identity-row=true
      }}
      <div class="columns is-mobile">
        <div class="column is-7-tablet is-10-mobile">
          {{#link-to
            "vault.cluster.access.identity.show"
            item.id
            "details"
            class="is-block has-text-black has-text-weight-semibold"
            data-test-identity-link=true
          }}<Icon
              @glyph="user-square-outline"
              class="has-text-grey-light"
            /><span class="has-text-weight-semibold">{{item.name}}</span>{{/link-to}}
          <div class="has-text-grey is-size-8">
            {{item.id}}
          </div>
        </div>
        <div class="column is-3 is-hidden-mobile">
          {{#if item.aliases.length}}
            {{pluralize item.aliases.length "alias"}}
          {{/if}}
        </div>
        <div class="column has-text-right">
          {{#popup-menu name="identity-item" onOpen=(action "reloadRecord" item)}}
            <Confirm as |c|>
              <nav class="menu">
                <ul class="menu-list">
                  <li class="action">
                    {{#link-to "vault.cluster.access.identity.show" item.id "details"}}
                      Details
                    {{/link-to}}
                  </li>
                  {{#if (or item.isReloading item.updatePath.isPending item.aliasPath.isPending)}}
                    <li class="action">
                      <button disabled type="button" class="link button is-loading is-transparent">
                        loading
                      </button>
                    </li>
                  {{else}}
                    {{#if item.canAddAlias}}
                      <li class="action">
                        {{#link-to "vault.cluster.access.identity.aliases.add" (pluralize identityType) item.id}}
                          Create alias
                        {{/link-to}}
                      </li>
                    {{/if}}
                    {{#if item.canEdit}}
                      <li class="action">
                        {{#link-to "vault.cluster.access.identity.edit" item.id}}
                          Edit
                        {{/link-to}}
                      </li>
                      <li class="action">
                        {{#if item.disabled}}
                          <button type="button" {{action "toggleDisabled" item}} class="link">
                            Enable
                          </button>
                        {{else if (eq identityType 'entity')}}
                          <c.Message
                            @id="{{item.id}}-disable"
                            @triggerText="Disable"
                            @message="Associated tokens will not be revoked, but cannot be used"
                            @title="Disable this?"
                            @confirmButtonText="Disable"
                            @onConfirm={{action "toggleDisabled" item}}
                            data-test-engine-disable="true"/>
                        {{/if}}
                      </li>
                    {{/if}}
                    {{#if item.canDelete}}
                      <li class="action">
                        <c.Message
                          @id={{item.id}}
                          @onConfirm={{action "delete" item}}
                          data-test-item-delete="true"/>
                      </li>
                    {{/if}}
                  {{/if}}
                </ul>
              </nav>
            </Confirm>
          {{/popup-menu}}
        </div>
      </div>
    {{/linked-block}}
  {{/each}}
  {{#if (gt model.meta.lastPage 1) }}
    {{list-pagination
      page=model.meta.currentPage
      lastPage=model.meta.lastPage
      link="vault.cluster.access.identity.index"
    }}
  {{/if}}
{{else}}
  <EmptyState
    @title="No {{pluralize identityType}} yet"
    @message="A list of {{pluralize identityType}} in this namespace will be listed here. Create your first {{identityType}} to get started."
  >
    {{#link-to "vault.cluster.access.identity.create" (pluralize identityType) tagName="button" class="link"}}
      Create {{identityType}}
    {{/link-to}}
    <LearnLink @path="/vault/identity-access-management/iam-identity">
      Learn more
    </LearnLink>
  </EmptyState>
{{/if}}
